<?php

namespace app\admin\controller;

use app\admin\controller\AdminController;
use think\Db;
use think\Request;

// 分类
class CategoryController extends AdminController
{

    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {

        // 获取分类信息
        $list = Db::table('category')->field(true)->select();

        //处理分类信息
        $list =  $this->getHtmlCate($list, '——', 0, 0);


       return view('Category/index',[
           'list'=>$list
       ]);

    }

    /**
     * [unlimitCate 得到经过排序的分类二维数组,用于后台分级显示]
     * @param  [type]  $cate  [结果集]
     * @param  string  $html  [分隔符]
     * @param  integer $pid   [pid]
     * @param  integer $level [级别]
     * @return [type]         [二维数组]
     */
    private function getHtmlCate($cate,$html="——",$pid=0, $level=0){
        //定义空数组
        $arr = array();
        //遍历数组
        foreach($cate as $v){
            if($v['pid'] == $pid){
                $v['html'] = str_repeat($html, $level);
                $v['level'] = $level;
                $arr[] = $v;
                $arr = array_merge($arr,$this->getHtmlCate($cate,$html,$v['id'],$level+1));
            }
        }

        return $arr;
    }


    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
//        $pid = 0;
//
//        $list = [
//            'pid'=>
//        ];
//        return view('Category/add',[
//            'pid'=>
//        ]);
    }

    /**
     * 添加子分类
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
        $info = $request->post();
        $id = $info['id'];
        

        if ($id != 0){
            $arr['pid'] = $id;
            $arr['path'] = $info['path'].$arr['pid'].',';
            $arr['name'] = $info['name'];
            $result = Db::table('category')->data($arr)->insert();


            if ($result > 0){
                return $this->success('添加成功',url('admin/CategoryController/index'));
            }else{
                return $this->error('添加失败');
            }

        }

    }

    public function add(){

        $list = [
            'pid'=>0,
            'path'=>0
        ];

        return view('Category/add2',[
            'list'=>$list
        ]);
    }

    public function doadd(Request $request)
    {
        $info =$request->post();
        $info['pid'] = 0;
        $info['path'] = '0,';


        $result = Db::table('category')->data($info)->insert();
        if ($result > 0){
            return $this->success('添加成功',url('admin/CategoryController/index'));
        }else{
            return $this->error('添加菜品失败');
        }

    }

    /** 添加子分类 查询
     * 查询PID 和 PATH 传输到添加页面
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //

        $list = Db::table('category')
            ->field(true)
            ->where('id',$id)
            ->find();

        return view('Category/add',[
            'list' =>$list,
            'id'=>$id

        ]);


    }



/**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //

    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //

    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        // var_dump($id);die;


            $res = Db::table('category')
                ->field('id')
                ->table('category')
                ->where('pid = '.$id)
                ->find();
        // var_dump($res);die;
            if (!$res) {
                 // 删除指定权限
                $result = db('category')->where('id',$id)->delete();
                // var_dump($result);die;
                if ($result > 0) {
                    $info['status'] = true;
                    $info['id'] = $id;
                    $info['info'] = 'ID为:' . $id . '的权限删除成功!';
                } else {
                    $info['status'] = false;
                    $info['id'] = $id;
                    $info['info'] = 'ID为:' . $id . '的权限删除失败,请重试!';
                }
                 return json($info);
            }else{
               $this->error('请先删除子分类');
            }
        
       

       


    }
}

